
float4x4 World;
float4x4 View;
float4x4 Projection;


// TODO: ここでエフェクトのパラメーターを追加します。

// 2D描画
float4x4	g_ortho;				// 正則射影行列

// テクスチャ
texture		g_texture;				// テクスチャ
bool		g_tex;					// テクスチャの有り無し false:なし true:あり

//--------------------------------------------------------
// サンプラー1
//--------------------------------------------------------
sampler TextureSampler1 = 
sampler_state
{
	Texture		= <g_texture>;
//	MinFilter	= LINEAR;			// リニアフィルタ(縮小時)
//	MagFilter	= LINEAR;			// リニアフィルタ(拡大時)
//	MinFilter	= POINT;			// フィルタをかけない
//	MagFilter	= POINT;			// フィルタをかけない
	MinFilter	= ANISOTROPIC;		// 異方性フィルタ(縮小時)
	MagFilter	= ANISOTROPIC;		// 異方性フィルタ(拡大時)
};


struct VertexShaderInput
{
    float4 Position : POSITION0;

    // TODO: ここにテクスチャー座標および頂点カラーなどの
    // 入力チャンネルを追加します。
	float2 Texture : TEXCOORD0;
};

struct VertexShaderOutput
{
    float4 Position : POSITION0;

    // TODO: ここにカラーおよびテクスチャー座標などの頂点シェーダーの
    // 出力要素を追加します。これらの値は該当する三角形上で自動的に補間されて、
    // ピクセル シェーダーへの入力として提供されます。

	float2 Texture : TEXCOORD0;
};

struct PixelShaderOutput
{
	float4 Color : COLOR0;
};


//------------------------------------------------
// 頂点シェーダ
// ２Ｄ
//------------------------------------------------
VertexShaderOutput HUD_2DVS(VertexShaderInput input)
{
    VertexShaderOutput output;

	output.Position = mul(input.Position, View);
    output.Position = mul(input.Position, g_ortho);

    // TODO: ここで頂点シェーダー コードを追加します。
	output.Texture = input.Texture;

    return output;
}


//------------------------------------------------
// ピクセルシェーダ
// ２Ｄ
//------------------------------------------------
PixelShaderOutput HUD_2DPS(VertexShaderOutput input)
{
    // TODO: ここでピクセル シェーダー コードを追加します。
	PixelShaderOutput output;

	output.Color = tex2D(TextureSampler1, input.Texture);

    return output;
}


//------------------------------------------------
// テクニック宣言2D
//------------------------------------------------
technique HUD_2D_TECHNIQUE
{
    pass P0
    {
        // TODO: ここでレンダーステートを設定します。

        VertexShader = compile vs_2_0 HUD_2DVS();
        PixelShader = compile ps_2_0 HUD_2DPS();
    }
}
